﻿//
// *************************************************************************************
// WP-Framework
// 
// Developed by
// Lukas Kretschmar (lkretschmar.dev@bluewin.ch)
//
// Switzerland, Copyright (c) 2013 lkretschmar
// This content is released under the MIT License (http://opensource.org/licenses/MIT).
//     
// *************************************************************************************
//
//



using KretschIT.WP_Fx.EasyMoq.Generator.Configurations;
using KretschIT.WP_Fx.EasyMoq.Generator.Tests.Helpers.Objects;
using KretschIT.WP_Fx.EasyMoq.Generator.Tests.Other;
using KretschIT.WP_Fx.EasyMoq.Generator.Tests.Helpers.Events;
using KretschIT.WP_Fx.EasyMoq.Generator.Tests.Helpers.Inheritance;
using KretschIT.WP_Fx.EasyMoq.Generator.Tests.Helpers.Async;

namespace KretschIT.WP_Fx.EasyMoq.Generator.Tests
{
    [EasyMoqGenerator]
    public class EasyMoqGeneratorTestConfiguration : EasyMoqGenerator
    {
        protected override void Configure(IEasyMoqConfig config)
        {
            config.TargetNamespace = this.GetType().Namespace;

            config.CreateMockFor<ITestObject>();           
            config.CreateMockFor<ITestGenericMethod>();
            config.CreateMockFor<ITestSimpleGenericObject<string>>();
            config.CreateMockFor<Helpers.OtherObjects.ITestSimpleGenericObject<string>>();
            config.CreateMockFor<ITestSimpleGenericObject<IObject>>();
            config.CreateMockFor<ITestComplexGenericObject<int, string, long>>();
            config.CreateMockFor<ITestComplexGenericObject<short, string, string>>();
            config.CreateMockFor<ITestComplexGenericObject<int, int, int>>();

            config.CreateMockFor<ITestAllEvent>();
            config.CreateMockFor<ITop>();
            config.CreateMockFor<ITopOverload>();
            config.CreateMockFor<ISetter>();
            config.CreateMockFor<IOnlySetter<bool>>();

            config.CreateMockFor<ITestAsyncFunc>();
        }
    }
}
